package com.ruoyi.trainingManagement.service;

import com.ruoyi.trainingManagement.domain.CourseStudentInfo;
import com.ruoyi.trainingManagement.domain.Vo.StudentScoreVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 课程学生成绩录入专用Service接口
 */
public interface ICourseStudentGradeInputService {

    /**
     * 查询课程班下已选课学生（成绩录入用）
     */
    List<StudentScoreVo> selectEnrolledGradeInputStudents(String courseScheduleDetailsId);

    /**
     * 提交单个学生成绩（录入专用）
     */
    boolean submitGradeInputScore(CourseStudentInfo info);

    /**
     * 批量提交学生成绩（录入专用）
     */
    int batchSubmitGradeInputScores(List<CourseStudentInfo> infos);

    /**
     * 根据学号查询学生ID（用于Excel导入校验）
     */
    String getStudentIdByNo(String studentNo);

    /**
     * 获取批量提交的失败原因列表（用于导入结果返回）
     */
    List<String> getBatchFailReasons();
    /**
     * 解析Excel文件，提取学生成绩数据
     * @param file 上传的Excel文件
     * @param courseScheduleDetailsId 课程班ID
     * @return 解析后的学生成绩列表
     * @throws Exception 解析过程中发生的异常
     */
    List<CourseStudentInfo> parseExcelFile(MultipartFile file, String courseScheduleDetailsId) throws Exception;

}